package com.anolesoft.yr.mbus.prod.pack.service;

import com.anolesoft.yr.mbus.prod.pack.dto.ProdPackageDeleteDTO;
import com.anolesoft.yr.mbus.prod.pack.dto.ProdPackageSaveDTO;
import com.anolesoft.yr.mbus.prod.pack.dto.ProdPackageUpdateDTO;
import com.anolesoft.yr.mbus.prod.pack.entity.ProdPackage;
import com.anolesoft.yr.mbus.prod.pack.vo.ProdPackageQueryVO;

import java.util.List;
import java.util.Map;

public interface ProdPackageService {

    //新增产品套餐信息表
    String saveProdPackage(ProdPackageSaveDTO prodPackageSaveDTO) throws Exception;

    //修改产品套餐信息表
    String updateProdPackage(ProdPackageUpdateDTO prodPackageUpdateDTO) throws Exception;

    //提交产品套餐信息表
    String submitProdPackage(List<ProdPackageUpdateDTO> ProdPackageUpdateDTOList) throws Exception;

    //审批通过产品套餐信息表
    String passProdPackage(List<ProdPackageUpdateDTO> ProdPackageUpdateDTOList) throws Exception;

    //审批驳回产品套餐信息表
    String rejectProdPackage(ProdPackage prodPackage) throws Exception;

    //设置产品套餐信息表
    String setTimeProdPackage(ProdPackageUpdateDTO prodPackageUpdateDTO) throws Exception;

    //升版产品套餐信息表
    String upVersionProdPackage(ProdPackageUpdateDTO prodPackageUpdateDTO) throws Exception;

    //删除产品套餐信息表
    String deleteProdPackage(List<ProdPackageDeleteDTO> ProdPackageDeleteDTOList) throws Exception;

    //根据主键查询产品服务项及参数数据
    Map<String, Object> queryProdPackageByUid(String uid) throws Exception;

    //根据条件查询产品套餐所有数据
    Map<String, Object> queryProdPackageAll(String typeName, String prodName, String speciesName, String speciesApprovalState, int page, int limit) throws Exception;

    //根据条件查询产品套餐设置所有数据
    Map<String, Object> queryProdPackageSetTimeAll(String typeName, String prodName, String speciesName, int page, int limit) throws Exception;

    //根据条件查询产品套餐审批所有数据
    Map<String, Object> queryProdPackageApproveAll(String typeName, String prodName, String speciesName, int page, int limit) throws Exception;

    //根据条件查询产品套餐名称
    List<ProdPackageQueryVO> queryProdPackageName(String prodName) throws Exception;

    //根据条件查询产品套餐服务项及参数
    List<ProdPackageQueryVO> queryProdPackageServiceNameValue(String speciesName) throws Exception;

}
